#include "MyString.h"  
  
// Clones a 0-terminated C string, allocating memory using new.  
const char* MyString::CloneCString(const char* a_c_string) {  
    if (a_c_string == NULL) return NULL;  
  
    const size_t len = strlen(a_c_string);  
    char* const clone = new char[ len + 1 ];  
    memcpy(clone, a_c_string, len + 1);  
  
    return clone;  
}  
  
// Sets the 0-terminated C string this MyString object  
// represents.  
void MyString::Set(const char* a_c_string) {  
    // Makes sure this works when c_string == c_string_  
    const char* const temp = MyString::CloneCString(a_c_string);  
    delete[] c_string_;  
    c_string_ = temp;  
}  
 
